iT邦幫忙

2025 iThome 鐵人賽

DAY 19
0
Software Development

通勤看手機就可讀懂的 Elixir 語言入門教學系列 第 19

看似語法其實只是呼叫函式的語法糖

  • 分享至 

  • xImage
  •  

在 Elixir 裡面其實寫死的語法很少,大部分都是呼叫函式

do end 區塊

def

當我們在定義函式時

def hello do
  "world"
end

這個可以寫成

def(hello, do: "world")

defmodule

模組定義其實也是函式
把剛剛的定義函式包在定義模組會變成

defmodule(Hello, do: def(hello, do: "World"))

等同於平常寫的

defmodule Hello do
  def hello do
    "World"
  end
end

之前也有提到,如果有多個結構簡單的同名函式
我們會用 keyworld list 的 do: ... 來代替 do end

def hello("Jack"), do: "Hi Jack"
def hello("Nick"), do: "Go away"
def hello(_), do: "Hello"

這個時候將 do end 還原成 do: 來寫,程式碼變得比較好讀

if

我們常用的 if 也是有這個結構

if user.admin? do
  "歡迎"
else
  "你沒權限"
end

可以寫成

if(user.admin?, do: "歡迎", else: "你沒權限")

題外話,Elixir 沒有三元運算子
雖然長了點,但是這種寫法的 if 可以取代


上一篇
Keyword list (關鍵字列表)
下一篇
Behaviour (行為) 1
系列文
通勤看手機就可讀懂的 Elixir 語言入門教學24
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言